#include<stdio.h>
//一个字符串的结构体
typedef struct Sstring
{
	char ch[100];
	int length;
} Sstring;
//算法的基本思路是：从主串的第i个字符起和模式串的第一个字符比较。若相等，则继续比较后续字符；否则从主串的下一个字符起再重新和模式串的第一个开始比。知道模式串被比较完成，代表主串中存在模式串。

int  my_strsrt(char* s1, char* s2)
{//当s2与s1不等时 star就返回 然后重新找
	while (*s1)
	{
		char* head = s1;
		char* star = s2;
		char* tail = NULL;
		while (*s1 == *star)
		{
			 tail = s1;
			s1++;
			star++;
		}
		if (*(star) == '\0')
		{
			return tail-head-1;
			break;
		}
		if (*s1 != *star)
		{
			s1++;
			star = s2;
		}
	}
	if (*s1 == '\0')
	{
		return NULL;
	}
}
void GetString(struct Sstring *s1)
{
	gets(s1->ch);
	s1->length=strlen(s1->ch);
}
int main()
{
	Sstring s1 = {NULL,0};
	Sstring s2 = { NULL,0 };
	//该函数是输入和统计输入的字符个数
	printf("请输入母串\n");
	GetString(&s1);

	printf("请输入要查找的子串\n");
	GetString(&s2);

	int pos = my_strsrt(s1.ch, s2.ch);
		printf("找到了!\n");
		printf("从子串开始的坐标是：");
		printf("%d", pos);
	return 0;
}
